import java.util.Arrays;
//翻转字符串二版本，不同于上一个
public class reverseStringTwo {
    public void reverse(char[] st,int start,int end,int k){
        while (k/2>0){
            char temp = st[start];
            st[start] = st[end];
            st[end] = temp;
            k--;
            start++;
            end--;
        }
    }
    public static void main(String[] args) {
//        char[] st = {'a','b','c','d','e','f','g'};
//        char[] st = {'a','b'};
        char[] st = {'a'};
        var main = new reverseStringTwo();
        int k = 2;
        for (int i=0;i<st.length;){
            if((st.length-i)>=k){//如果还有一个完整k长度的，就进行翻转
                main.reverse(st,i,i+k-1,2);
            }
            if((st.length-i<k)){//如果只剩小于k长度的，也进行翻转
                main.reverse(st,i,st.length-1,2);
                break;//已经走完了，可以直接退出了
            }
            //这里就得对i进行操作了
            if(st.length-2*k>0){//如果从i到num.length的长度比k更长的话
                i +=2*k;
            }else {
                break;//直接退出程序
            }
        }

        System.out.println(Arrays.toString(st));
    }
}
